package test04.method;
import entity.Student;
import java.lang.reflect.Method;

/**
 * 反射 API 操作 - 方法操作 - Method
 *
 * @Author zqx
 * @Date 2024-03-26
 */
public class MainTest03 {
    public static void main(String[] args) throws Exception {
        // 第一：获取类的 Class 对象
        Class<Student> clazz = Student.class;

        // 第二：使用反射调用方法
        Student stu = clazz.getConstructor().newInstance();
        // 错误的示范
        // Method sleepMethod = clazz.getMethod("sleep");
        // 1.获取私有方法
        Method sleepMethod = clazz.getDeclaredMethod("sleep");

        // 2.设置私有方法具有可访问的权限
        sleepMethod.setAccessible(true);

        // 3.调用私有方法
        sleepMethod.invoke(stu);
    }
}
